﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PeoplesJukebox.Core.MediaItems;

namespace PeoplesJukebox.Core.Interfaces
{
    /// <summary>
    /// Represents a tracklist
    /// </summary>
    public interface ITrackList
    {
        /// <summary>
        /// Gets the tracklist name
        /// </summary>
        string Name { get; }

        /// <summary>
        /// Returns whether the tracklist has tracks left to play
        /// </summary>
        bool HasTracks { get; }

        /// <summary>
        /// Returns whether the tracklist allows a track already played to be repeated
        /// </summary>
        bool AllowsRepeatPlay { get; }

        /// <summary>
        /// Gets/sets the "chosen by" text for the tracklist
        /// </summary>
        string ChosenByText { get; set; }

        /// <summary>
        /// Returns the next track to be played
        /// </summary>
        /// <returns>Track</returns>
        Track GetNextTrack();

        /// <summary>
        /// Loads the tracklist
        /// </summary>
        void Load();
    }
}